package com.dkm.ec.cart.domain;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;

import com.dkm.base.core.helper.SpringHelper;
import com.dkm.biz.domain.AbstractDomain;
import com.dkm.ec.cart.persistence.dao.CartItemDao;
import com.dkm.ec.cart.persistence.entity.CartItemPo;
import com.dkm.ec.cart.repository.CartEntityRepository;
import com.dkm.ec.cart.repository.CartItemRepository;

/**
 * 对象功能:购物车项目 领域对象实体
 * 开发公司:dkm.com
 * 开发人员:ZHH
 * 创建时间:2017-05-17 23:33:18
 */
@SuppressWarnings("serial")
@Service
@Scope("prototype")
public class CartItem extends AbstractDomain<String, CartItemPo>{
	 
	 private CartItemDao cartItemDao = null;
	@Resource
	private CartItemRepository cartItemRepository;
	@Resource
	private CartEntityRepository  cartEntityRepository;

	protected void init(){
		cartItemDao = SpringHelper.getBean(CartItemDao.class);
		setDao(cartItemDao);
	}

	public void destroyAndEntity(String ids) {
		String[] cartItemIds = ids.split(",");
		List<String> cartEntityId = new ArrayList<String>();
		for(String id : cartItemIds){
			 CartItem cartItem =	cartItemRepository.load(id);
			 if(cartItem != null){
				 CartItemPo cartItemPo = cartItem.getData();
				 cartEntityId.add(cartItemPo.getCartId());
				 cartItem.destroy(id);
			 }
		}
		for(String cartId : cartEntityId){
		   Integer number = cartItemRepository.findByItemByCarId(cartId);
		   if(number == 0){
			   cartEntityRepository.newInstance().destroy(cartId);
		   }
		}
	}	 
	 
}
